#define GDK_WINDOW_TYPE(d) (((GDK_WINDOW (d)))->window_type)
#define GDK_WINDOW_DESTROYED(d) (GDK_WINDOW (d)->destroyed)
-extern GdkEventFunc _gdk_event_func; /* Callback for events */
-extern gpointer _gdk_event_data;
-extern GDestroyNotify _gdk_event_notify;
-
extern GSList *_gdk_displays;
extern gchar *_gdk_display_name;
extern gint _gdk_screen_number;
void _gdk_events_queue (GdkDisplay *display);
GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
+void _gdk_event_emit (GdkEvent *event);
GList* _gdk_event_queue_find_first (GdkDisplay *display);
void _gdk_event_queue_remove_link (GdkDisplay *display,
GList *node);
gdk_event_set_device (event, gdk_drag_context_get_device (current_context));
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);
gdk_event_set_device (event, gdk_drag_context_get_device (current_context));
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);
gdk_event_set_device (event, gdk_drag_context_get_device (current_context));
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);
gdk_event_set_device (event, gdk_drag_context_get_device (current_context));
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);
gdk_event_set_device (event,
gdk_drag_context_get_device (_gdk_quartz_drag_source_context));
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);
/* We need to render to clipboard immediately, don't call
* append_event()
*/
- if (_gdk_event_func)
- {
- event = gdk_event_new (GDK_SELECTION_REQUEST);
- event->selection.window = window;
- event->selection.send_event = FALSE;
- event->selection.selection = GDK_SELECTION_CLIPBOARD;
- event->selection.target = target;
- event->selection.property = _gdk_selection;
- event->selection.requestor = msg->hwnd;
- event->selection.time = msg->time;
+ event = gdk_event_new (GDK_SELECTION_REQUEST);
+ event->selection.window = window;
+ event->selection.send_event = FALSE;
+ event->selection.selection = GDK_SELECTION_CLIPBOARD;
+ event->selection.target = target;
+ event->selection.property = _gdk_selection;
+ event->selection.requestor = msg->hwnd;
+ event->selection.time = msg->time;
- fixup_event (event);
- GDK_NOTE (EVENTS, g_print (" (calling gdk_event_func)"));
- GDK_NOTE (EVENTS, _gdk_win32_print_event (event));
- (*_gdk_event_func) (event, _gdk_event_data);
- gdk_event_free (event);
-
- /* Now the clipboard owner should have rendered */
- if (!_delayed_rendering_data)
- {
- GDK_NOTE (EVENTS, g_print (" (no _delayed_rendering_data?)"));
- }
- else
- {
- if (msg->wParam == CF_DIB)
- {
- _delayed_rendering_data =
- _gdk_win32_selection_convert_to_dib (_delayed_rendering_data,
- target);
- if (!_delayed_rendering_data)
- {
- g_warning ("Cannot convert to DIB from delayed rendered image");
- break;
- }
- }
-
- /* The requestor is holding the clipboard, no
- * OpenClipboard() is required/possible
- */
- GDK_NOTE (DND,
- g_print (" SetClipboardData(%s,%p)",
- _gdk_win32_cf_to_string (msg->wParam),
- _delayed_rendering_data));
+ fixup_event (event);
+ GDK_NOTE (EVENTS, g_print (" (calling _gdk_event_emit)"));
+ GDK_NOTE (EVENTS, _gdk_win32_print_event (event));
+ _gdk_event_emit (event);
+ gdk_event_free (event);
- API_CALL (SetClipboardData, (msg->wParam, _delayed_rendering_data));
- _delayed_rendering_data = NULL;
- }
- }
+ /* Now the clipboard owner should have rendered */
+ if (!_delayed_rendering_data)
+ {
+ GDK_NOTE (EVENTS, g_print (" (no _delayed_rendering_data?)"));
+ }
+ else
+ {
+ if (msg->wParam == CF_DIB)
+ {
+ _delayed_rendering_data =
+ _gdk_win32_selection_convert_to_dib (_delayed_rendering_data,
+ target);
+ if (!_delayed_rendering_data)
+ {
+ g_warning ("Cannot convert to DIB from delayed rendered image");
+ break;
+ }
+ }
+
+ /* The requestor is holding the clipboard, no
+ * OpenClipboard() is required/possible
+ */
+ GDK_NOTE (DND,
+ g_print (" SetClipboardData(%s,%p)",
+ _gdk_win32_cf_to_string (msg->wParam),
+ _delayed_rendering_data));
+
+ API_CALL (SetClipboardData, (msg->wParam, _delayed_rendering_data));
+ _delayed_rendering_data = NULL;
+ }
break;
case WM_ACTIVATE:
if (event)
{
- if (_gdk_event_func)
- (*_gdk_event_func) (event, _gdk_event_data);
+ _gdk_event_emit (event);
gdk_event_free (event);